home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / answrbok / 5_9.lha / 5_9 / 5_9a5.c < prev    next >
Text File  |  1993-08-08  |  739b  |  48 lines

  1. * Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */
  2. * The C++ Answer Book */
  3. * Tony Hansen */
  4. * All rights reserved. */
  5. oid set(date& dt, int m, int d, int y)
  6.  
  7.    dt.month = m;
  8.    dt.day = d;
  9.    dt.year = y;
  10.  
  11.  
  12. oid get(const date& dt, int& m, int& d, int& y)
  13.  
  14.    m = dt.month;
  15.    d = dt.day;
  16.    y = dt.year;
  17.  
  18.  
  19. tatic int numdays[] =
  20.    {
  21.    31, 28, 31, 30, 31, 30,
  22.    31, 31, 30, 31, 30, 31
  23.    };
  24.  
  25. oid next(date& dt)
  26.  
  27.    if (++dt.day > 28)
  28. {
  29. int maxday = numdays[dt.month-1];
  30. if ((dt.month == 2) && (dt.year % 4 == 0) &&
  31.     ((dt.year % 100 != 0) ||
  32.      (dt.year % 400 == 0)))
  33.     maxday++;
  34.  
  35. if (dt.day > maxday)
  36.     {
  37.     dt.month++;
  38.     dt.day = 0;
  39.  
  40.     if (dt.month > 12)
  41.     {
  42.     dt.month = 1;
  43.     dt.year++;
  44.     }
  45.     }
  46. }
  47.  
  48.